package com.sinosoft.ptas.entity;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import com.sinosoft.ptas.system.util.PtasObjectUtil;
/**
 * 整体审核表
 * @author zhangxiaolong
 *
 */

public class ReportEntity implements Serializable{
	private static final long serialVersionUID = 1L;
	
	@NotBlank(message = "{report.id.notText}")
	@Length(max = 36, message = "{report.id.maxLength}")
	private String id;	//标识符
	
	@Length(max = 4, message = "{report.year.maxLength}")
	private String year;//年度
	
	@Length(max = 6, message = "{report.divisionCode.maxLength}")
	private String divisionCode;//省份行政区划代码
	
	@Length(max = 255, message = "{report.nameOfSpecialProject.maxLength}")
	private String nameOfSpecialProject;//专项名称
	
	@Length(max = 255, message = "{report.centralDepartment.maxLength}")
	private String centralDepartment;//中央主管部门
	
	@Length(max = 255, message = "{report.implPhaseOfSpecialProject.maxLength}")
	private String implPhaseOfSpecialProject;//专项实施期
	
	@Length(max = 255, message = "{report.provincialFinanceDepartment.maxLength}")
	private String provincialFinanceDepartment;//省级财政部门
	
	@Length(max = 255, message = "{report.provincialGovernment.maxLength}")
	private String provincialGovernment;//省级主管部门
	
	@Length(max = 255, message = "{report.fundsOfImplPhase.maxLength}")
	private String fundsOfImplPhase;//实施期金额
	
	@Length(max = 255, message = "{report.centralGrantsOfImplPhase.maxLength}")
	private String centralGrantsOfImplPhase;//实施期金额中央补助
	
	@Length(max = 255, message = "{report.localGovernOfImplPhase.maxLength}")
	private String localGovernOfImplPhase;//实施期金额地方资金
	
	@Length(max = 255, message = "{report.annualFunds.maxLength}")
	private String annualFunds;//年度金额
	
	@Length(max = 255, message = "{report.centralGrantsOfAnnualFunds.maxLength}")
	private String centralGrantsOfAnnualFunds;//年度金额中央补助
	
	@Length(max = 255, message = "{report.localGovernOfAnnualFunds.maxLength}")
	private String localGovernOfAnnualFunds;//年度金额地方资金
	
	@Length(max = 10, message = "{report.projectStatus.maxLength}")
	private String projectStatus;//本项目状态
	
	@Length(max = 10, message = "{report.timesOfReport.maxLength}")
	private Integer timesOfReport;//同一项目申请的第几次
	private String filePath;
	@Length(max = 10, message = "{report.auditResult.maxLength}")
	private String auditResult;//评定结果（未评定，优，良，中，差）默认未评定，其他情况在添加审核表时进行对应的本项目状态的变化
	private Date   commitTime;//点击提交的时间（代表申报时间，自动生成的）
	private String creater;//创建人
	private Date   createTime;//创建时间
	private String updator;//更新人
	private Date   updateTime;//更新时间
	private Integer referValueIsFinsh;//省局下面默认值实施期目标下的实施期目标下的默认指标参考值是否完成
	private List<TargetsOfImplPhaseEntity>  targetPhaseList;//实施期目标表的集合 
	
	private List<AuditEntity> auditList;//审核表集合 
	//private AuditEntity auditEntity;//审核表实体
	
	
	
	
	public String getId() {
		return id;
	}
	public Integer getReferValueIsFinsh() {
		return referValueIsFinsh;
	}
	public void setReferValueIsFinsh(Integer referValueIsFinsh) {
		this.referValueIsFinsh = referValueIsFinsh;
	}
	public String getFilePath() {
		return filePath;
	}
	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getYear() {
		return year;
	}
	public void setYear(String year) {
		this.year = year;
	}
	public String getDivisionCode() {
		return divisionCode;
	}
	public void setDivisionCode(String divisionCode) {
		this.divisionCode = divisionCode;
	}
	public String getNameOfSpecialProject() {
		return nameOfSpecialProject;
	}
	public void setNameOfSpecialProject(String nameOfSpecialProject) {
		this.nameOfSpecialProject = nameOfSpecialProject;
	}
	public String getCentralDepartment() {
		return centralDepartment;
	}
	public void setCentralDepartment(String centralDepartment) {
		this.centralDepartment = centralDepartment;
	}
	public String getImplPhaseOfSpecialProject() {
		return implPhaseOfSpecialProject;
	}
	public void setImplPhaseOfSpecialProject(String implPhaseOfSpecialProject) {
		this.implPhaseOfSpecialProject = implPhaseOfSpecialProject;
	}
	public String getProvincialFinanceDepartment() {
		return provincialFinanceDepartment;
	}
	public void setProvincialFinanceDepartment(String provincialFinanceDepartment) {
		this.provincialFinanceDepartment = provincialFinanceDepartment;
	}
	public String getProvincialGovernment() {
		return provincialGovernment;
	}
	public void setProvincialGovernment(String provincialGovernment) {
		this.provincialGovernment = provincialGovernment;
	}
	public String getFundsOfImplPhase() {
		return fundsOfImplPhase;
	}
	public void setFundsOfImplPhase(String fundsOfImplPhase) {
		this.fundsOfImplPhase = fundsOfImplPhase;
	}
	public String getCentralGrantsOfImplPhase() {
		return centralGrantsOfImplPhase;
	}
	public void setCentralGrantsOfImplPhase(String centralGrantsOfImplPhase) {
		this.centralGrantsOfImplPhase = centralGrantsOfImplPhase;
	}
	public String getLocalGovernOfImplPhase() {
		return localGovernOfImplPhase;
	}
	public void setLocalGovernOfImplPhase(String localGovernOfImplPhase) {
		this.localGovernOfImplPhase = localGovernOfImplPhase;
	}
	public String getAnnualFunds() {
		return annualFunds;
	}
	public void setAnnualFunds(String annualFunds) {
		this.annualFunds = annualFunds;
	}
	public String getCentralGrantsOfAnnualFunds() {
		return centralGrantsOfAnnualFunds;
	}
	public void setCentralGrantsOfAnnualFunds(String centralGrantsOfAnnualFunds) {
		this.centralGrantsOfAnnualFunds = centralGrantsOfAnnualFunds;
	}
	public String getLocalGovernOfAnnualFunds() {
		return localGovernOfAnnualFunds;
	}
	public void setLocalGovernOfAnnualFunds(String localGovernOfAnnualFunds) {
		this.localGovernOfAnnualFunds = localGovernOfAnnualFunds;
	}
	public String getProjectStatus() {
		return projectStatus;
	}
	public void setProjectStatus(String projectStatus) {
		this.projectStatus = projectStatus;
	}
	public Integer getTimesOfReport() {
		return timesOfReport;
	}
	public void setTimesOfReport(Integer timesOfReport) {
		this.timesOfReport = timesOfReport;
	}
	public Date getCommitTime() {
		return commitTime;
	}
	public void setCommitTime(Date commitTime) {
		this.commitTime = commitTime;
	}
	public String getCreater() {
		return creater;
	}
	public void setCreater(String creater) {
		this.creater = creater;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public String getUpdator() {
		return updator;
	}
	public void setUpdator(String updator) {
		this.updator = updator;
	}
	public Date getUpdateTime() {
		return updateTime;
	}
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	public List<TargetsOfImplPhaseEntity> getTargetPhaseList() {
		return targetPhaseList;
	}
	public void setTargetPhaseList(List<TargetsOfImplPhaseEntity> targetPhaseList) {
		this.targetPhaseList = targetPhaseList;
	}
	/*public List<AuditEntity> getAuditList() {
		return auditList;
	}
	public void setAuditList(List<AuditEntity> auditList) {
		this.auditList = auditList;
	}*/
	public String getAuditResult() {
		return auditResult;
	}
	public void setAuditResult(String auditResult) {
		this.auditResult = auditResult;
	}
	public List<AuditEntity> getAuditList() {
		return auditList;
	}
	public void setAuditList(List<AuditEntity> auditList) {
		this.auditList = auditList;
	}
	
	public ReportEntity oldToNew(){
		ReportEntity newReport = new ReportEntity();
		PtasObjectUtil.oldToNew(newReport, this, "serialVersionUID");
		return newReport;
	}
	
}
